#include <string.h>
#include <gtk/gtk.h>
+static const char *css =
+".overlay-green {"
+" background-image: none;"
+" background-color: green;"
+"}\n"
+".overlay-white {"
+" background-image: none;"
+" background-color: white;"
+"}\n"
+".transparent-red {"
+" background-image: none;"
+" background-color: rgba(255, 0, 0, 0.8);"
+"}\n"
+".transparent-green {"
+" background-image: none;"
+" background-color: rgba(0, 255, 0, 0.8);"
+"}\n"
+".transparent-blue {"
+" background-image: none;"
+" background-color: rgba(0, 0, 255, 0.8);"
+"}\n"
+".transparent-purple {"
+" background-image: none;"
+" background-color: rgba(255, 0, 255, 0.8);"
+"}\n"
+;
+
+
/* test that margins and non-zero allocation x/y
* of the main widget are handled correctly
*/
GtkWidget *overlay;
GtkWidget *text;
GtkWidget *child;
- GdkRGBA color;
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (win), "Non-zero X");
gtk_grid_attach (GTK_GRID (grid), gtk_label_new ("Right"), 2, 1, 1, 1);
overlay = gtk_overlay_new ();
- gdk_rgba_parse (&color, "red");
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_override_background_color (overlay, 0, &color);
-G_GNUC_END_IGNORE_DEPRECATIONS
gtk_grid_attach (GTK_GRID (grid), overlay, 1, 1, 1, 1);
text = gtk_text_view_new ();
GtkWidget *overlay;
GtkWidget *text;
GtkWidget *child;
- GdkRGBA color;
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (win), "Custom positioning");
overlay = gtk_overlay_new ();
- gdk_rgba_parse (&color, "yellow");
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_override_background_color (overlay, 0, &color);
-G_GNUC_END_IGNORE_DEPRECATIONS
gtk_container_add (GTK_CONTAINER (win), overlay);
grid = gtk_grid_new ();
GtkWidget *grid;
GtkWidget *check1;
GtkWidget *check2;
- GdkRGBA color;
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (win), "Stacking");
grid = gtk_grid_new ();
overlay = gtk_overlay_new ();
main_child = gtk_event_box_new ();
- gdk_rgba_parse (&color, "green");
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_override_background_color (main_child, 0, &color);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ gtk_style_context_add_class (gtk_widget_get_style_context (main_child), "overlay-green");
gtk_widget_set_hexpand (main_child, TRUE);
gtk_widget_set_vexpand (main_child, TRUE);
label = gtk_label_new ("Main child");
GtkWidget *button;
GtkWidget *label;
GtkWidget *ebox;
- GdkRGBA color;
int i;
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
for (i = 0; i < 4; i++)
{
- char *colors[] = {
- "rgba(255,0,0,0.8)", "rgba(0,255,0,0.8)", "rgba(0,0,255,0.8)", "rgba(255,0,255,0.8)"
+ char *style_classes[] = {
+ "transparent-red", "transparent-green", "transparent-blue", "transparent-purple"
};
ebox = gtk_event_box_new ();
button = gtk_button_new_with_label (g_strdup_printf ("Child %d", i));
gtk_container_add (GTK_CONTAINER (ebox), button);
- gdk_rgba_parse (&color, colors[i]);
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_override_background_color (ebox, 0, &color);
- G_GNUC_END_IGNORE_DEPRECATIONS
+ gtk_style_context_add_class (gtk_widget_get_style_context (ebox), style_classes[i]);
+
gtk_widget_set_halign (ebox, (i == 0 || i == 3) ? GTK_ALIGN_START : GTK_ALIGN_END);
gtk_widget_set_valign (ebox, i < 2 ? GTK_ALIGN_START : GTK_ALIGN_END);
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), ebox);
}
ebox = gtk_event_box_new ();
- gdk_rgba_parse (&color, "white");
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- gtk_widget_override_background_color (ebox, 0, &color);
-G_GNUC_END_IGNORE_DEPRECATIONS
+ gtk_style_context_add_class (gtk_widget_get_style_context (ebox), "overlay-white");
label = gtk_label_new ("Main\n"
"Main\n"
GtkWidget *win7;
GtkWidget *win8;
GtkWidget *win9;
+ GtkCssProvider *css_provider;
gtk_init (&argc, &argv);
if (g_getenv ("RTL"))
gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
+ css_provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (css_provider, css, -1, NULL);
+ gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+ GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
win1 = test_nonzerox ();
gtk_widget_show_all (win1);